Storage controlling unit

ABSTRACT

Provided is a storage controller capable of changing a system configuration with scalability. A storage controller blade of the storage controller includes: interface units that each connect to one of a host computer and a disk device; a processor unit that controls a configuration of the storage controller and data access; a memory unit that stores a data cache and configuration information on the interface unit and the processor unit; and a mutual connection unit that connects the interface units, the processor unit, and the memory unit to one another. The processor unit recognizes a form of connection to another storage controller blade over the mutual network, and the connection path to another storage controller blade is set in the mutual connection unit based on the recognized form of connection.

CROSS REFERENCED TO RELATED APPLICATIONS

The present application is a continuation application of applicationSer. No. 11/106,536, filed Apr. 15, 2005; which claims priority fromJapanese application P2005-036114 filed on Feb. 14, 2005, the content ofwhich is hereby incorporated by reference into this application.

BACKGROUND OF THE INVENTION

This invention relates to a storage controller for storing data in oneor plural disk devices, in particular, to a storage controller capableof changing a system configuration with scalability.

Each year sees an increase in digital data to be stored at a corporate,governmental, municipal, or even personal level, and an increase in needfor a larger capacity of a storage system. There are also increasingnumbers of users and hosts that access digital data. Herein, the hostsaccess the digital data by communicating with data input/output devicessuch as a monitoring camera image controller, various personalauthentication devices, authentication management servers on theInternet, sensor systems used for a traffic information system, and thelike.

To meet such demands, it is necessary to structure a storage system thathas the larger storage capacity and can handle the increasing number ofaccesses. However, as the demands increase as described above, it isdifficult to make future projections for expansion while narrowing andpinpointing its prediction range. Therefore, vendors who introduce asystem build the initial system based on prediction on the scale of a“just-in-case” system (provided with more than enough margins even forunlikely events). In other words, vendors introduce devices havingresources with a size larger than that for the current use, or devicesto which systems and the resources can be easily added later.

As represented by a large-scale disk array system, a conventionalstorage system presupposes a large-scale system configuration, andincludes basic components required when setting up the large-scalesystem configuration or equipments to be required in the future.Examples thereof include a power source, a battery, a back plane havinga number of slots for a large-scale system configuration, a sharedmemory blade for the large-scale system configuration, and a network(switch) blade.

Vendors of storage systems provide a plurality of models. For example,the vendors provide three models including small-throughsmall/medium-scale devices, small/medium-through medium/large-scaledevices, and medium/large-through large-scale devices. An examplethereof is disclosed in “Symmetrix DMX Architecture Productiondescription Guide”, EMC Corporation, browsed online on the Internet at<URL:http://www.emc.com/products/systems/pdf/C1011_emc_symm_dmx_pdg_ldv.pdf>in April 2004.

Immediately after the introduction of the storage system, the minimumnecessary configuration may be sufficient for a customer. However, thelarge-scale system configuration becomes necessary when the futureprojections for expansion of the system are taken into account.

A user can decide the scale of the storage system to be initiallyintroduced among the above models to reduce cost for initialintroduction of the storage controller into a system when the user'sfuture projections for expansion are within the range of scalability ofthe model. On the other hand, when desired expansion of the deviceexceeds the range of scalability of the model decided by the user, itbecomes necessary to replace the entire device or purchase an additionaldevice, which increases cost required therefore.

What is most desirable for a user is to realize cost commensurate withthe scale (small scale or large scale) of a storage system and to beallowed to expand the scale thereof between the small- and large-scales.However, with the reduced cost, it is difficult to provide the storagesystem with a sufficient scalability required therefore.

Discussion will be made herein as to ensuring sufficient scalability ina prior-art storage array device. In this case, the storage controllerof the storage array device needs to have in advance such a mechanism(for example, an enhancement interface; hereinafter, referred to as“enhancement function”) as to allow addition of various devices.However, the storage array device has a serious demand for reduced cost,and when an enhancement mechanism is merely introduced into the storagearray device, cost for initial introduction becomes relatively high forthe user having no clear future projections for expansion.

This issue will be described in detail. As an example, consideration isgiven to the prior-art storage array device including the storagecontroller blade and switch connection blade with shared memory unit.

For example, in the small-scale system configuration, the storage arraydevice includes four storage controller blades and two switch connectionblades with a shared memory. In this case, the system scale of thedevice becomes quite smaller.

In contrast, a case is assumed where the device is changed from thesmall-scale into a large-scale system configuration. The large-scalesystem includes 16 storage controller blades and four switch connectionblades with a shared memory. The device is mounted with connection amongmany blades depending on its scale.

The type of mounting the blades differs between the prior-artsmall-scale and large-scale systems, and the connection between theblades basically has no commonality. When the device is formed into asmall size by using a small number of blades limiting the scalability ofthe system, the relationships between the blades do not match, whichdoes not allow the enhancement into the large-scale systemconfiguration.

Accordingly, even when the small-scale model is initially introduced,the initial introduction cost is invested in vain upon the transition tothe large-scale system. In other words, the user needs to invest costfor purchasing a model having a scalability aiming at a large scale, orexcess cost more than the above cost, from the beginning.

It is also effective for users and vendors who introduce a system toprovide a device having a scale desired by a user at necessary,sufficient cost. However, this point of view is not taken into accountin prior arts.

SUMMARY OF THE INVENTION

This invention has been made in view of the above-mentioned problems,and it is therefore an object of this invention to provide a storagecontroller with sufficient scalability.

In order to achieve the above objects, this invention provides a storagecontroller for controlling data access made between a host computer anda disk device, including one or more storage controller blades and amutual network system that connects the storage controller blades to oneanother, in which the storage controller blade each includes: interfaceunits that each connect to one of the host computer and the disk device;a processor unit that controls a configuration of the storage controllerand the data access; a memory unit that stores a data cache andconfiguration information on the interface unit and the processor unit;and a mutual connection unit that connects the interface units, theprocessor unit, and the memory unit to one another, and connects to thestorage controller blades. The processor unit recognizes a form ofconnection to another storage controller blade over the mutual networksystem, and the connection path to another storage controller blade isset in the mutual connection unit based on the recognized form ofconnection.

According to this invention, it is possible to provide a storage systemcapable of realizing more flexible scalability and lower cost andprotecting user's investment to a maximum extent.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a configuration of a computer systemincluding a storage system according to a first embodiment of thisinvention.

FIG. 2 is a block diagram showing a hardware configuration of a storagecontroller blade according to the first embodiment.

FIG. 3A is a perspective view of an example configuration of a storagecontroller configured into a small scale according to the firstembodiment.

FIG. 3B shows a rear face of the example configuration of the storagecontroller configured into a small scale according to the firstembodiment.

FIG. 4 is a perspective view of an example configuration of the storagecontroller configured into a large scale according to the firstembodiment.

FIG. 5 is an explanatory diagram showing an example of a discoveryinformation table according to the first embodiment.

FIG. 6 is an explanatory diagram showing an example of a routingmanagement table according to the first embodiment.

FIG. 7 is an explanatory diagram showing a change in configuration ofthe storage controller according to the first embodiment.

FIG. 8 is a flowchart of processing of changing the configuration of thestorage controller according to the first embodiment.

FIG. 9 is a block diagram showing a hardware configuration of a storagecontroller blade according to a second embodiment of this invention.

FIG. 10 is a perspective view of an example configuration of a storagecontroller according to the second embodiment.

FIG. 11 is a flowchart of processing of changing the configuration ofthe storage controller according to the second embodiment.

FIG. 12 is a flowchart of processing of changing the configuration ofthe storage controller according to a modified example of the secondembodiment.

FIG. 13 is a flowchart of processing of changing a configuration of astorage controller according to a third embodiment.

FIG. 14 is a block diagram showing a configuration of a storagecontroller according to a fourth embodiment.

FIG. 15 is a block diagram showing a configuration of the storagecontroller according to a modified example of the fourth embodiment.

FIG. 16 is a flowchart of processing of handling a failure occurring inthe storage controller according to the fourth embodiment.

FIG. 17 is a block diagram showing a configuration of a storagecontroller configured into a small scale according to a fifthembodiment.

FIG. 18 is a block diagram showing a configuration of the storagecontroller configured into a large scale according to the fifthembodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Hereinafter, description will be made of an embodiment mode of thisinvention with reference to the drawings.

In the embodiment mode of this invention, a storage controller isconfigured by combining a plurality of storage controller blades. Inaddition, a storage system is configured by combining a plurality ofstorage controllers and a disk device group.

The storage system can have the system configuration changed accordingto a request from a user. For example, a system scale thereof can beexpanded. In particular, it is possible to configure a storage systemhaving a larger scale (higher performances) by installing additionalstorage controller blades.

Further provided is means for allowing system configuration informationthat has been used to be transferred upon upgrade. This realizes astorage system with maximum availability.

Hereinafter, detailed description will be made of embodiments of thisinvention.

First Embodiment

FIG. 1 is a block diagram showing a configuration of a computer systemincluding a storage system according to a first embodiment of thisinvention.

A storage system according to the first embodiment includes a storagecontrollers 100 (100A and 100B) and a disk device group 200. The storagecontroller 100 is connected to the disk device group 200. The storagecontroller 100 is also connected to a host group 300 and a managementterminal 500 via a network 400.

The storage controller 100 may be used as a single controller or aplurality of controllers forming a redundant structure. In the exampleof FIG. 1, two storage controllers 100A and 100B are connected with eachother via an inter-unit network 190, but three or more storagecontrollers forming a redundant structure may be used. The number of thestorage controllers 100 is arbitrarily set, and increased or reduceddepending upon the system scale demanded by a user.

The disk device group 200 includes one or more disk devices. The diskdevices allocate a plurality of logical areas by forming a RAID array.The storage controller 100A writes data into each logical area thereofand reads out the data therefrom.

The disk device group 200 may include not only the disk devices formingthe RAID array but also various storage controllers such as disk devicesforming a Just-Bunch-of-Disks (JBOD) array, a disk array system, a tapelibrary device, and a semiconductor disk device.

The storage controller 100 and the disk device group 200 are connectedto each other via a protocol (for example, Fibre Channel) suitable fordata transfer.

The storage controller 100 and the disk device group 200 may form astorage system independently. In this case, the storage controller 100is connected to the host group 300 via a LAN. Alternatively, the storagecontroller 100 and the disk device group 200 may be connected to aStorage Area Network (SAN) via the network 400.

A minimum-scale configuration that functions as a storage systemincludes one storage controller 100 formed of two storage controllerblades 110 and a mutual network 180. The storage system also includes apower source, a battery, and a casing frame. The minimum-scaleconfiguration is compact to implement and thus low in cost for initialintroduction.

The host group 300 includes one or more host computers 300A through300N. The host computer 300A sends a request to the storage controller100 and receives a reply thereto.

The network 400 is configured as a SAN and includes a plurality of SANswitches 410 (410A through 410N). The SAN switches 410 each connect thestorage controller 100, the host group 300, and the management terminal500 to one another. The network 400 may be configured as a network (forexample, LAN) other than the SAN.

The storage controller 100 includes one or more storage controllerblades 110. The storage controller blades 110 each handle access to thedisk device group 200 based on a request from the host group 300.

The storage controller blade 110 includes one or more interface units120 (120A through 120N), a switch unit 130, a buffer 131, a processorunit 140, and a memory unit 150.

In addition, the storage controller blades 110 are connected to eachother via the mutual network 180.

The mutual network 180 may have a connection form using a device such asa switch or a bus-type hub, passive backplane with a point to pointconnection (that directory connects all blades) or may have a connectionform using mesh connection (perfect mutual connection that directlyconnects all storage controller blades) via cables.

The mutual network 180 has a connection form provided with a necessary,sufficient bandwidth for data transfer corresponding to a system scaledemanded by a user. For example, the mesh connection using a cable isadopted when a system is first installed, and in turn, a connection formusing a switch connecting the storage controller blades to each other isadopted for expansion of a device scale. With such a change, cost can bereduced for installing a new device, and the device can be expanded moreflexibly.

The interface units 120A through 120N are each connected to the network400 or the disk device group 200. The interface units 120A through 120Nfunction as channel interfaces to the host computers 300A and the like.The interface units 120A through 120N further function as storageinterfaces to the disk device group 200. The number of the interfaceunits 120A through 120N is arbitrarily set, and increased or reduceddepending upon performances etc. demanded by a user.

The switch unit 130 connects the interface units 120, the processor unit140, and the memory unit 150 to one another. The buffer 131 temporarilystores data transferred by the switch unit 130.

The processor unit 140 controls a function of each unit of the storagecontroller blade 110. Particularly in this embodiment, the processorunit 140 executes processing to recognize information on blades (storagecontroller blade and switch connection blade) connected to the storagecontroller blade 110. The number of processor units 140 is arbitrarilyset, and increased or reduced depending upon performances demanded by auser.

The memory unit 150 includes a storage system such as a RAM.

Information stored in the memory unit 150 includes a storage controllerconfiguration, control information, data input/output controlinformation (for example, directory management information on cacheddata), a RAID structure of a disk device group, a logical volumestructure, and a function set for the logical volume (for example, acopy pair or mirrored status between logical volumes).

The storage controller blade 110 includes an interface 160. Theinterface 160 is connected to the management terminal 500 via a network510. The management terminal 500 communicates with the storagecontroller blade 110 via the interface 160, and can change settings ofthe storage controller 100 or obtain statuses thereof. In the example ofFIG. 1, only one of the storage controller blades 110 of the storagecontroller 100 includes the interface 160, but a plurality of storagecontroller blades 110 may each include the interface 160. Further, theinterface 160 may have any configuration that allows the managementterminal 500 to communicate with the storage controller 100.

The processor unit 140, the memory unit 150, and the interface 160 areconnected to another storage controller blade 110N via a communicationnetwork 170. The use of the communication network 170 allows, forexample, a disk cache or a shared memory to be shared and processors tocommunicate each other.

In the above storage system, the numbers of the storage controllers 100and the storage controller blade 110 are arbitrarily set, and increasedor reduced depending upon the system scale demanded by a user.

FIG. 2 is a block diagram showing a hardware configuration of thestorage controller blade 110.

The storage controller blade 110 includes one or more interface controlunits 121 (121A through 121D), a switch mechanism 132, the buffer 131,and a plurality of processors 141 (141A and 141B). The switch mechanism132 connects the other units with one another.

The interface control unit 121 includes a plurality of connection unitsthat allows communications via a protocol suitable for data transfer.The connection units each function as the interface unit 120 byconnecting to the disk device group 200 and to the host group 300 viathe network 400.

The number of the interface control units 121 is arbitrarily set, andthe number of the connection units provided to the interface controlunits 121 is also arbitrarily set.

The switch mechanism 132 connects the interface control units 121 to theprocessors 141. Also, the switch mechanism 132 is connected to a switchmechanism 132 provided to another storage controller blade 110 via themutual network system 180. The switch mechanism 132 is further connectedto a switch mechanism 132 provided to another storage controller 100 viathe inter-unit network 190.

The switch mechanism 132 includes a mutual network interface controlunit 133. The mutual network interface control unit 133 controlstransfer of data sent from each unit connected thereto. This allows theswitch mechanism 132 to function as the switch unit 130.

The switch mechanism 132 transfers data and configuration informationsent to/received from each unit connected thereto, in other words, theinterface control unit 121, the processor 141, or a switch mechanism 132provided to another storage controller blade 110. The switch mechanism132 transfers data between different protocols, and also transfers databetween the same protocols.

The buffer 131 includes a Double Data Rate (DDR) memory (RAM), andtemporarily stores data transferred by the switch mechanism 132.

The processor 141A includes a bridge 142, an MPU 143, a memory 144, anda LAN controller 145.

The bridge 142 connects the other units of the processor 141A with theswitch mechanism 132, and transfers data among the other units of theprocessor 141A and between the other units of the processor 141A and theswitch mechanism 132.

The memory 144 includes a RAM. The memory 144 stores data processed bythe processor 141. The memory 144 also functions as a disk cache and ashared memory. The disk cache temporarily stores data read/written bythe disk device group 200. The shared memory stores configurationinformation on the storage controller 100 and the disk device group 200.In other words, the memory 144 functions as the memory unit 150.

The MPU 143 controls the storage controller blade 110. In other words,the MPU 143 functions as the processor unit 140.

The LAN controller 145 communicates with the other processor 141B etc.via the communication network 170. The LAN controller 145 allows theprocessor 141A to communicate with the other processor 141B or aprocessor provided to another storage controller blade 110. This allowsdifferent storage controller blades 110 to share the cache andconfiguration information stored in the memory 144.

As described above regarding to the configuration of the processor 141A,the processor 141B has the same configuration.

Further, the configuration of the storage controller blade 110 as shownin FIG. 2 includes two processors 141, but more than two processors 141may be adopted. By increasing the number of the processors 141, parallelprocessing can be enhanced to improve the processing speed andperformances of the storage controller blade 110.

Next, description will be made of the storage controller 100.

FIG. 3A is a perspective view of an example configuration of the storagecontroller 100 configured into a small scale, and FIG. 3B shows a rearface thereof. In FIGS. 3A and 3B, the disk device group 200, the powersource, the battery, etc. are omitted.

As shown in FIG. 3A, the storage controller 100 includes four storagecontroller blades 110. The storage controller blades 110 are eachconnected to a back plane 181 and stored in a casing (blade storingunit) 101.

Further, as shown in FIG. 3B, the back plane 181 includes a connector183A for connection between the storage controller blades 110. Theconnector 183A is connected to a connector 183B. The connector 183B isprovided to both ends of a cable 184 that connects between the storagecontroller blades 110. A plurality of cables 184 are used to directlyconnect the storage controller blades 110 to one another on a one-to-onebasis. In other words, each storage controller blade 110 is directlyconnected to all the other storage controller blades 110. Suchconnection is called a “full-mesh network”.

The connector 183A is connected to the switch unit 130, processor unit140, and memory unit 150 of each storage controller blade 110.Accordingly, the storage controller blades 110 are connected to oneanother via the cables 184, thereby forming the communication network170 and the mutual network system 180.

The back plane 181 has no wirings for connecting the storage controllerblades 110 with one another, and instead uses cables to communicablyconnect the storage controller blades 110 with one another.

It should be noted that the back plane 181 may be provided in advancewith wirings having a conductor pattern that uses the above-mentionedfull-mesh configuration to connect the storage controller blades 110with one another.

By using the cables as described above, in the case where, for example,the storage controller blades 110 is changed in number, a change hasonly to be made in the connection using the cable 184. Therefore,particularly when configured into a small scale, the system can have theinitial cost suppressed to a minimum with only a necessary configurationof the storage controller 100, and allows easy upgrade of itsconfiguration.

FIG. 4 is a perspective view of an example configuration of a storagecontroller configured into a large scale. In FIG. 4, the disk devicegroup 200, the power source, the battery, etc. are omitted.

As shown in FIG. 4, the storage controller 100 includes 16 storagecontroller blades 110. The storage controller blades 110 are eachconnected to the back plane 181 and stored in the casing 101.

As described above in FIGS. 3A and 3B, in the case where the number ofthe storage controller blades 110 is small, the full-mesh configurationusing cables is desirable to connect the storage controller blades 110with one another.

However, since the example configuration includes the 16 storagecontroller blades 110, the number of cables becomes large, making itdifficult to use the full-mesh configuration for implementation.Therefore, there is provided switch connection blades 182 for connectingthe storage controller blades 110 to one another.

The switch connection blades 182 each include a switch that controlssend/receive of data and configuration information among the storagecontroller blades 110. According to the above, the back plane 181 andthe switch connection blades 182 are used to configure the mutualnetwork system 180.

In the example of FIG. 4, unlike the examples of FIGS. 3A and 3B, theback plane 181 is provided in advance with wirings for connectionbetween the storage controller blades 110 and the switch connectionblades 182.

With such an arrangement, the configuration of the storage controller100 can be changed without a large change in system configuration. Thus,system upgrade also needs only a minimum change in configuration. Inother words, the cases can be handled where the number of the storagecontroller blades 110 is small as in the example of FIGS. 3A and 3B, andwhere the number is large as in the example of FIG. 4. To be specific,small- to large-scale systems can be handled by changing the mutualnetwork system 180 (cable 184 or switch connection blade 182) without achange in the storage controller blades 110. This makes the cost optimumto each scale.

In addition to the switch that connects the storage controller blades110 to one another, the switch connection blade 182 may be a switchconnection blade with a memory unit. The memory unit stores informationshared among the storage controller blades 110, and functions as, forexample, a shared memory or a cache memory. The information stored inthe switch connection blades 182 can be referenced and updated among thestorage controller blades 110.

The shared information is thus centralized in the memory unit providedto a storage controller blade, which allows reduction in the capacity ofthe memory provided to the storage controller blade 110, and leads toreduction in the cost and installing space.

Herein, a memory blade may be provided instead of the switch connectionblade 182 with a memory unit. The memory blade includes only a dedicatedmemory unit for storing configuration information and an interface.

The switch connection blade with a memory unit or the memory blade mayplay roles like as the memory unit 150 described before.

Further, to facilitate the system change in the storage controller 100,the storage controller blade 110 includes a discovery unit thatrecognizes information on another storage controller blade 110 connectedthereto. In other words, the discovery unit recognizes a form ofconnection to another storage controller blade 110. The discovery unitis stored in the memory unit 150 as a program, and the processor 141loads the program to implement the function of the discovery unit.

First, when starting up the storage controller 100 or changing itsconfiguration, the discovery unit establishes a link between the storagecontroller blade 110 and another storage controller blade 110 connectedthrough the mutual network system 180 (cable 184 or switch connectionblade 182) or a switch (switch connection blade 182). After that, it isjudged which of the other storage controller blade 110 and the switchconnection blade 182 is connected to the own storage controller blade110 under the established link. When the other storage controller blade110 is connected thereto, it is recognized what kind of blade it is andwhich port number it is connected to. When the switch connection blade182 is connected thereto, it is recognized which port number it isconnected to.

The recognized information is stored in a discovery information table700 as shown in FIG. 5. The storage controller blade 110 can referencethe discovery information table 700 to distinguish whether theconnection is made via the back plane 181 or the switch connection blade182.

For example, when the connection is made via the switch connection blade182 as shown in FIG. 4, the storage controller blade 110 inquires of theswitch connection blade 182 what kind of storage controller blade 110 isconnected to each port. After that, the processor unit 140 provided toeach storage controller blade 110 recognizes all devices that areconnected thereto, and then completes a routing management table 800 asshown in FIG. 6.

FIG. 5 is an explanatory diagram showing an example of the discoveryinformation table 700.

The discovery information table 700 stores the information on anotherdevice (blade or the like) recognized through processing by thediscovery unit. The discovery information table 700 is stored in thememory unit 150.

The discovery information table 700 includes a part ID 701, a slot ID702, a connection port ID 703, a function 704, a memory amount 705, andan own-connection port ID 706.

The part ID 701 is an identifier of a type of a device concerned. Thetype includes the storage controller blade, the switch connection blade,and the switch connection blade with a memory unit.

The slot ID 702 is an identifier of a location of a slot of the mutualnetwork system 180 in which the device concerned is inserted.

The connection port ID 703 is an identifier of a port of the deviceconcerned connected to the own storage controller blade 110.

The function 704 is information representing a function of therecognized device. For example, when the device concerned is the switchconnection blade 182, “SW” representing a switch is stored.

The memory amount 705 is information on a memory capacity of the memoryunit 150 provided to the device concerned.

The own-connection port ID 706 is an identifier of a port of the ownstorage controller blade 110 through which the recognized device isconnected.

According to the discovery information table 700, it is possible tomanage the information on existence of all devices along a route thatcan be accessed by the storage controller blade 110.

FIG. 6 is an explanatory diagram showing an example of the routingmanagement table 800.

The routing management table 800 includes information on which type ofdevice having which ID is connected to which port of the own storagecontroller blade 110. The routing management table 800 is stored in thememory unit 150.

The routing management table 800 includes a destination 801, a slot ID802, an own-connection port ID 803, an incoming port ID 804, a relaypart ID 805, an outgoing port ID 806, and a source port ID 807.

The destination 801 is information representing the function of a deviceto be accessed.

The slot ID 802 is an identifier of a slot in which the device to beaccessed is inserted.

The own-connection port ID 803 is an identifier of a port of the ownstorage controller blade 110 connected to the device to be accessed.

The incoming port ID 804, the relay part ID 805, and the outgoing portID 806 are information on a device existing between the own storagecontroller blade 110 and the device to be accessed. The device existingin-between (for example, switch connection blade 182) relays accessbetween the own storage controller blade 110 and the device to beaccessed.

The incoming port ID 804 is an identifier of a port of the deviceexisting in-between which is connected to the own storage controllerblade 110. The relay part ID 805 is an identifier of the device existingin-between. The relay part ID 805 is common to the part ID 701 of thediscovery information table 700. The outgoing port ID 806 is anidentifier of a port of the device existing in-between which isconnected to the device to be accessed.

When a plurality of devices are identified by the relay part ID 805, thesame number of incoming port IDs 804, relay part IDs 805, and outgoingport IDs 806 are stored in the routing management table 800.

The source port ID 807 is an identifier of a port of the device to beaccessed which is connected to the device existing in-between.

According to the routing management table 800, it is possible for thestorage controller blade 110 to manage a route to the device to beaccessed.

For example, as apparent from the example of FIG. 6, a storagecontroller blade with an entry number #0 is inserted in a slot with aslot ID “0-2”. FIG. 6 further shows that a route for access to thestorage controller blade extends from a port of the own storagecontroller blade with a port ID “1”, via a port “2” of a switchconnection blade represented by a relay part ID “0” and an outgoing port“1” of the switch connection blade, to a port of the storage controllerblade with a port ID “0”.

In particular, when the connection is made via the switch connectionblade 182, the discovery unit obtains the information on which port ofthe switch connection blade 182 is used for the connection. Thediscovery unit further obtains the information on which port of the ownstorage controller blade is connected to which port of the switchconnection blade 182 and which port of the other storage controllerblade is connected to which port of the switch connection blade 182.Then, the obtained information is stored in the routing management table800. According to the routing management table 800, even when thestorage controller 100 has a configuration where a plurality of switchconnection blades 182 are cascaded, the storage controller blade 110 canobtain the information on another blade.

When the mutual network system 180 is configured by using a switch, theprocessor unit 140 of each switch connection blade 182 sets in thecorresponding switch unit 130 the routing management table 800 includingan address or port ID after the discovery processing and after theestablishment of the routing management table 800. Alternatively,packets including port-to-port routing information on the switch unit130 (for example, information representing that a route extends via aport “0” and a port “3” of the part “1”) may be used for the access.This can eliminate the need for setting the routing management table 800in the switch unit 130. It should be noted that other methods may beused to set the routing management table 800.

Next, description will be made of how to change the configuration of thestorage controller 100.

FIG. 7 is an explanatory diagram showing a change in configuration ofthe storage controller 100, and also shows how a system is upgraded froma small scale into a large scale.

A storage system of FIG. 7 includes disk storing units (disk devicegroup 200), an old blade storing unit 101A that can store eight blades,a new blade storing unit 101B that can store 12 blades, and othercomponents (a power source, a battery, the management terminal 500, andthe like).

The old blade storing unit 101A stores four storage controller blades110.

The new blade storing unit 101B stores another four storage controllerblades 110 aside from the four stored in the old blade storing unit101A, and two switch connection blades 182.

The storage controller blades 110 of the old blade storing unit 101A arein operation, and the storage controller blades 110 of the new bladestoring unit 101B are not in operation yet.

The storage controller blades 110 stored in the old blade storing unit101A are relocated to the new blade storing unit 101B in positionsdefined by dotted lines. Accordingly, the storage controller 100 thathas undergone the change is now upgraded into a configuration having theeight storage controller blades 110 and the two switch connection blades182 in total. After the upgrade, all the blades stored in the new bladestoring unit 101B start to operate.

The management terminal 500 of the storage system is stored in amanagement terminal storing unit provided to a lower portion of the newblade storing unit 101B. To be specific, input/output devices (akeyboard and a display) are connected to an interface provided to themanagement terminal storing unit.

The power source and battery of the storage system are provided to alower portion of the management terminal storing unit.

FIG. 8 is a flowchart of processing of changing the configuration of thestorage controller 100 according to the first embodiment.

In the processing for a configuration change, configuration informationon the storage controller 100 that has not undergone the change (oldblade storing unit 101A) is recorded in a particular logical volume ofthe disk device group 200 connected to the storage controller 100. Then,the configuration information is read out of the particular logicalvolume within the disk device group 200 to be reflected on the storagecontroller that has undergone the change (new blade storing unit 101B).

A given area dedicated as an area that stores the configurationinformation is previously allocated in a logical unit (logical volume)within the disk device group 200.

Alternatively, a partial area of a normal logical unit (logical volume)that stores data may be allocated to the dedicated area for storing theconfiguration information. For example, the configuration information(settings of a storage function, a license, a user account, etc.) on theentire device may be stored in the dedicated area secured in the logicalunit, and the configuration information on a RAID array of the logicalvolume may be stored in the dedicated area allocated in the normallogical unit.

First, an administrator uses cables to connect the interface units 120of the storage controller blades 110 stored in the old blade storingunit 101A and the interface units 120 of the storage controller blades110 stored in the new blade storing unit 101B. The administrator alsoconnects the interfaces 160 of the storage controller blades 110 storedin the new blade storing unit 101B with the management terminal 500 byuse of cables. The administrator further connects the interface units120 of the storage controller blades 110 stored in the new blade storingunit 101B with the network 400 by use of cables (step 1001).

This allows the host computers 300A etc. and the disk device group 200to be shared by the storage controller blades 110 of the new bladestoring unit 101B and the storage controller blades 110 of the old bladestoring unit 101A. At this time, I/Os from/to the host computers 300Aetc. are handled by the storage controller blades 110 of the old bladestoring unit 101A. The storage controller blades 110 of the new bladestoring unit 101B have not started its control operation yet.

Then, the storage controller blades 110 each freeze the configurationinformation on the storage system (step 1002). In other words, accordingto an instruction from the management terminal 500, a change is set tobe inhibited in the configuration information on the storage controller100 and the disk device group 200. The configuration information isstored in the memory unit 150 provided to each storage controller blade110 of the old blade storing unit 101A.

Then, according to the instruction from the management terminal 500,each storage controller blade 110 of the old blade storing unit 101Astores the configuration information, which is stored in the memory unit150 provided to the storage controller blade 110, in a dedicated areaallocated in the disk device group 200. Then, the configurationinformation is obtained and stored in the memory unit 150 provided toeach storage controller blade 110 of the new blade storing unit 101B(step 1003).

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 switches an access path from the hostcomputer 300A over to the storage controller blade 110 of the new bladestoring unit 101B (step 1004). In other words, a path management programof the host computer 300A is operated to switch a blade to be accessedby the host computer 300A from the storage controller blade 110 of theold blade storing unit 101A over to the storage controller blade 110 ofthe new blade storing unit 101B. To be specific, a destination(including a physical address of a target and a port number of a SANswitch) to be accessed by the host along the path is switched over.

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 suspends the I/Os from/to the host (step1005).

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 of the old blade storing unit 101A has thecache data flashed (step 1006). In other words, data stored in the cachememory but not reflected on the disk is written into the disk devicegroup 200.

Then, according to the instruction from the management terminal 500, theobtained configuration information is used to cause the storagecontroller blade 110 of the new blade storing unit 101B to recognize theconfiguration information, thereby establishing the configurationinformation (step 1007).

To be specific, the storage controller blade 110 of the new bladestoring unit 101B is caused to recognize the configuration of the RAIDarray, and imports a logical volume. Further, a path to the hostcomputer 300A is set. Accordingly, the storage controller blade 110 ofthe new blade storing unit 101B recognizes the disk device group 200 andthe host computer 300A, and allows the processing by the storagecontroller 100.

The steps 1006 and 1007 are executed in parallel between the storagecontroller blades 110 of the old blade storing unit 101A and the storagecontroller blades 110 of the new blade storing unit 101B.

After that, the management terminal 500 judges whether or not the flashof all the cache data stored in the storage controller blades 110 of theold blade storing unit 101A has been completed (step 1008). When theflash is judged to have been completed, according to the instructionfrom the management terminal 500, the storage controller blades 110 ofthe new blade storing unit 101B each resume I/Os from/to the host (step1009).

The above-mentioned processing enables the processing by the storagecontroller blade 110 of the new blade storing unit 101B. Meanwhile, theprocessing by the storage controller blades 110 of the old blade storingunit 101A has completely ended.

Then, the administrator relocates the storage controller blades 110 byremoving the storage controller blades 110 from the old blade storingunit 101A, and storing them into the new blade storing unit 101B (step1010). At this time, the cables used for the connection between the oldblade storing unit 101A and the network 400 and the cables used for theconnection between the old blade storing unit 101A and the new bladestoring unit 101B are removed.

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 releases the frozen configurationinformation (step 1011). This allows the processing by all the storagecontroller blades 110 stored in the new blade storing unit 101B.

The above-mentioned processing makes it possible to change theconfiguration of the storage controller 100.

It should be noted that according to the flowchart, a time period duringwhich the I/Os from/to the host cannot be handled occurs at the time ofswitching over the path to the host computer and at the time ofrelocating the storage controller blades 110. Therefore, the pathmanagement program stored in the host computer 300A may preferably usedto reduce the time period during which the I/Os cannot be handled to aminimum.

As described above, according to the first embodiment of this invention,it is possible to change the configuration of the storage controller 100with ease by increasing/decreasing the number of the storage controllerblades 110. Particularly in the small-scale configuration, the storagecontroller blades 110 are connected to one another by use of thefull-mesh configuration, while in the large-scale configuration, theswitch connection blade 182 is used for the connection. With such anarrangement, the storage controller 100 can have the cost for initialintroduction and the cost for upgrade suppressed to a lower level withthe scalability being enhanced.

Second Embodiment

In the first embodiment described above, the configuration informationis stored in the logical volume of the disk device group 200. Incontrast, according to a second embodiment of this invention, thestorage controller 100 includes a non-volatile storage device forstoring the configuration information. Herein, the same constituents asthose in the first embodiment are denoted by the same symbols, and theirdescription will be omitted.

FIG. 9 is a block diagram showing a hardware configuration of thestorage controller blade 110 according to the second embodiment.

The storage controller blade 110 according to the second embodimentincludes a non-volatile storage device unit 600. The non-volatilestorage device unit 600 is connected to the switch mechanism 132.

The non-volatile storage device unit 600 includes a non-volatile storagedevice control unit 610 and a non-volatile storage device 620.

The non-volatile storage device control unit 610 controls data to beread/written by the non-volatile storage device 620.

The non-volatile storage device 620 includes a recording medium such asa flash memory or a hard disk, and stores data under control of thenon-volatile storage device control unit 610. The storage controllerblade 110 stores the management information on the storage system in thenon-volatile storage device 620.

The non-volatile storage device unit 600 described above is provided tothe storage controller blade 110. With such an arrangement, thenon-volatile storage device unit 600 can be managed for each storagecontroller blade 110, making it advantageous to manage the small-scaleconfiguration having a small number of storage controller blades 110.

Alternatively, as shown in FIG. 10, the non-volatile storage device unit600 may be provided to an external portion of the storage controllerblade 110.

FIG. 10 is a perspective view of an example configuration of the storagecontroller 100.

FIG. 10 shows four storage controller blades 110 similarly to FIG. 3A.The casing 101 includes the non-volatile storage device unit 600. Thenon-volatile storage device unit 600 is provided on a substratedifferent from the one with the storage controller blades 110. Thenon-volatile storage device unit 600 is connected to each of the storagecontroller blades 110 by use of the full-mesh configuration.

With such an arrangement, there is no need to manage the non-volatilestorage device unit 600 for each storage controller blade 110, making itadvantageous to manage the large-scale configuration having a largenumber of storage controller blades 110.

Alternatively, the non-volatile storage device unit 600 may be providedto an internal portion and the external portion of the storagecontroller blade 110. When the non-volatile storage device unit 600 isprovided both the internal and external portions of the storagecontroller blade 110, the configuration information on the storagesystem can be transferred with ease. In particular, it is convenient totransfer the configuration information from the small-scaleconfiguration to the large-scale configuration.

It is also possible to provide the non-volatile storage device unit 600with a portable storage medium (such as a removable flash memory unit)to store the configuration information on the storage system into theportable storage medium. By moving the portable storage medium toanother location, data can be transferred with much convenience.

Next, description will be made of a change in the configuration ofstorage controller 100 according to the second embodiment.

FIG. 11 is a flowchart of processing of changing the configuration ofthe storage controller 100 according to the second embodiment. In theprocessing for a configuration change to be described with reference toFIG. 11, the configuration information on the storage system is storedin a storage area managed by the storage controller blade 110, and atthe time of the processing for a configuration change, stored in thenon-volatile storage device unit 600. The storage area for theconfiguration information on the storage system used by the storagecontroller blade 110 during operation may be allocated in a non-volatilestorage medium or a volatile storage medium.

FIG. 11 shows how the storage controller 100 is upgraded from a smallscale into a large scale similarly to FIG. 7.

First, the storage controller blades 110 each freeze the configurationinformation on the storage system (step 2001). In other words, accordingto an instruction from the management terminal 500, a change is set tobe inhibited in the configuration information on the storage controller100 and the disk device group 200.

Then, according to the instruction from the management terminal 500,each storage controller blade 110 of the old blade storing unit 101Astores the configuration information used by itself, into thenon-volatile storage device unit 600 (step 2002).

Then, the management terminal 500 judges whether or not the step ofstoring the configuration information into the non-volatile storagedevice unit 600 is complete (step 2003). When judged that the storingstep is complete, the administrator relocates the non-volatile storagedevice unit 600 between the storage controller blades 110 by removingthe non-volatile storage device unit 600 from the old blade storing unit101A, and storing it into the new blade storing unit 101B (step 2004).

Then, according to the instruction from the management terminal 500, theconfiguration information stored in the non-volatile storage device unit600 is used to cause the storage controller blade 110 of the new bladestoring unit 101B to recognize the configuration information, therebyestablishing the configuration information (step 2005).

To be specific, the storage controller blade 110 of the new bladestoring unit 101B is caused to recognize the configuration of the RAIDarray, and imports a logical volume. Further, a path to the hostcomputer 300A is set. Accordingly, the storage controller blade 110 ofthe new blade storing unit 101B recognizes the disk device group 200 andthe host computer 300A, and allows the processing by the storagecontroller 100.

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 suspends the I/Os from/to the host (step2006).

Then, the resources are relocated (step 2007). To be specific, thestorage controller blade 110 causes the path management program of thehost computer 300A to operate, and switches the blade to be accessedfrom the host computer 300A over to the storage controller blade 110 ofthe new blade storing unit 101B. Further, according to the instructionfrom the management terminal 500, the storage controller blade 110 ofthe old blade storing unit 101A has the cache data flashed. Further,according to the instruction from the management terminal 500, thestorage controller blade 110 uses the configuration information todefine a logical volume and a logical path.

After the processing of the step 2007 is complete, according to theinstruction from the management terminal 500, the storage controllerblades 110 of the new blade storing unit 101B each resume I/Os from/tothe host (step 2008).

Then, the administrator relocates the storage controller blades 110 byremoving the storage controller blades 110 from the old blade storingunit 101A, and storing them into the new blade storing unit 101B (step2009). The processing of the step 2009 is the same as that of the step1010 of FIG. 8 as described above.

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 releases the frozen configurationinformation (step 2010). This allows the processing by all the storagecontroller blades 110 stored in the new blade storing unit 101 B.

The above-mentioned processing makes it possible to change theconfiguration of the storage controller 100.

FIG. 12 is a flowchart of processing of changing the configuration ofthe storage controller 100 according to a modified example of the secondembodiment.

In the processing shown in FIG. 11, the configuration information on thestorage controller blade 110 of the new blade storing unit 101B is firstestablished, and then the I/Os from/to the host computers 300A etc. aresuspended, followed by the relocation of the resources. In contrast, inthe processing shown in FIG. 12, the I/Os from/to the host computers300A etc. are first suspended, and then the resources are relocated,followed by the establishment of the configuration information.

First, the storage controller blades 110 each freeze the configurationinformation on the storage system (step 3001). In other words, accordingto an instruction from the management terminal 500, a change is set tobe inhibited in the configuration information on the storage controller100 and the disk device group 200.

Then, according to the instruction from the management terminal 500,each storage controller blade 110 of the old blade storing unit 101Astores the configuration information used by itself, into thenon-volatile storage device unit 600 (step 3002).

Then, the management terminal 500 judges whether or not the step ofstoring the configuration information into the non-volatile storagedevice unit 600 is complete (step 3003). When judged that the storingstep is complete,

according to the instruction from the management terminal 500, thestorage controller blade 110 suspends the I/Os from/to the host (step3004).

Then, the resources are relocated (step 3005). To be specific, thestorage controller blade 110 causes the path management program of thehost computer 300A to operate, and switches the blade to be accessedfrom the host computer 300A over to the storage controller blade 110 ofthe new blade storing unit 101B. Further, according to the instructionfrom the management terminal 500, the storage controller blade 110 ofthe old blade storing unit 101A has the cache data flashed.

Then, the administrator relocates the storage controller blades 110 byremoving the storage controller blades 110 from the old blade storingunit 101A, and storing them into the new blade storing unit 101B (step3006). The processing of the step 3006 is the same as that of the step1010 of FIG. 8 as described above.

Then, according to the instruction from the management terminal 500, theconfiguration information stored in the non-volatile storage device unit600 is used to cause the storage controller blade 110 of the new bladestoring unit 101B to recognize the configuration information, therebyestablishing the configuration information. Then, the configurationinformation is used to define a logical volume and a logical path (step3007).

After all the processing of the step 3007 are complete, according to theinstruction from the management terminal 500, the storage controllerblades 110 of the new blade storing unit 101B each resume I/Os from/tothe host (step 3008).

Then, according to the instruction from the management terminal 500, thestorage controller blade 110 releases the frozen configurationinformation (step 3009). This allows the processing by all the storagecontroller blades 110 stored in the new blade storing unit 101B.

The above-mentioned processing makes it possible to change theconfiguration of the storage controller 100.

According to the method described above in FIG. 11, the time period forsuspension of the I/Os can be reduced. In contrast, according to themethod of FIG. 12, the change in configuration is performed after thesuspension of the I/Os, the time period for suspension of the I/Osbecomes longer, but the operation efficiency is enhanced. Therefore, thelatter method may be used for the system in which the suspension of theI/Os are allowed for a long time period.

As described above, according to the second embodiment, the non-volatilestorage device unit 600 is provided, so it is possible to change theconfiguration of the storage controller 100 more easily.

It should be noted that the non-volatile storage device unit 600 maystore the configuration information (or its differentials) changedduring the change in configuration.

To be specific, the storage controller blade is relocated withoutfreezing the configuration information. Then, all the configurationinformation changed during the period are stored in the non-volatilestorage device unit 600. After completion of relocation, theconfiguration information that have been changed are stored in thestorage controller blade 110, followed by the establishment of theconfiguration information.

The above-mentioned arrangement makes it possible to change theconfiguration of the storage controller without freezing theconfiguration information.

Third Embodiment

Next, description will be made of a third embodiment of this invention.

In the third embodiment, another storage controller 100 having the sameconfiguration as the existing storage controller 100 is added. At thistime, another disk device group 200 having the same configuration as theexisting disk device group 200 is also added. In other words, anothersystem different from that including the storage controller blade 110 ofthe old blade storing unit 101A is built to include the storagecontroller blade 110 of the new blade storing unit 101B.

As a result, the storage system composed of the storage controllers 100and the disk device group 200 can be changed into a redundant structure.Herein, the same constituents as those in the first embodiment aredenoted by the same symbols, and their description will be omitted.

FIG. 13 is a flowchart of processing of changing a configuration of thestorage controller 100 according to the third embodiment.

First, the storage controller blades 110 each freeze the configurationinformation on the storage system (step 4001). In other words, accordingto an instruction from the management terminal 500, a change is set tobe inhibited in the configuration information on the storage controller100 and the disk device group 200.

Then, according to the instruction from the management terminal 500,each storage controller blade 110 of the old blade storing unit 101Astores the configuration information, which is stored in the memory unit150 provided to the storage controller blade 110, into the memory unit150 provided to the storage controller blade 110 of the new bladestoring unit 101 B (step 4002).

After that, a first processing and a second processing progresssimultaneously. The first processing includes steps 4003 through 4006,which are executed in the storage controller 100. The second processingincludes steps 4010 through 4013, which are executed in the disk devicegroup 200.

In the first processing (steps 4003 through 4006), the administratorsets paths between the disk device group 200 and the storage controllerblades 110 of the new blade storing unit 101B (step 4003).

To be specific, the administrator uses a cable to connect the interfaceunit 120 of one storage controller blade 110 to the interface unit 120of another storage controller blade 110N or the like. Then, according tothe instruction from the management terminal 500, the storage controllerblade 110 sets a path. The path setting has only to be performed on oneof a redundant path pair. Further, a path to the disk device group 200does not have to be set.

Next, according to the instruction from the management terminal 500, thestorage controller blade 110 uses the configuration information storedin the step 4002 to establish the configuration information on thestorage controller blade 110 of the new blade storing unit 101B (step4004).

To be specific, the storage controller blade 110 of the new bladestoring unit 101B is caused to recognize the configuration of the RAIDarray, and imports a logical volume. Further, a path to the hostcomputer 300A is set. Accordingly, the storage controller blade 110 ofthe new blade storing unit 101B recognizes the disk device group 200 andthe host computer 300A, and allows the processing by the storagecontroller 100.

Then, the interface units 120 of the storage controller blades 110stored in the new blade storing unit 101 B are connected with thenetwork 400 by use of cables (step 4005). In other words, the pathmanagement program of the host computer 300A is operated to switch ablade to be accessed by the host computer 300A from the storagecontroller blade 110 of the old blade storing unit 101A over to thestorage controller blade 110 of the new blade storing unit 101B. To bespecific, a destination (including a physical address of a target and aport number of a SAN switch) to be accessed by the host along the pathis switched over.

Then, according to the instruction from the management terminal 500, thehost computer 300A causes the storage controller blade 110 to switch anaccess path from the host computer 300A over to the storage controllerblade 110 of the new blade storing unit 101B (step 4006). In otherwords, the path management program of the host computer 300A is operatedto switch a blade to be accessed by the host computer 300A from thestorage controller blade 110 of the old blade storing unit 101A over tothe storage controller blade 110 of the new blade storing unit 101B. Tobe specific, a destination (including a physical address of a target anda port number of a SAN switch) to be accessed by the host along the pathis switched over.

In the second processing (steps 4010 through 4013), according to theinstruction from the management terminal 500, a new disk device group200 added to the existing disk device group 200 is initialized (step4010).

Then, according to the instruction from the management terminal 500, thedata stored in the existing disk device group 200 is copied to the newlyadded disk device group 200 (step 4011).

To be specific, according to the instruction from the managementterminal 500, data is copied between a logical volume allocated in thenewly added disk device group 200 and the logical volume allocated inthe existing disk device group 200. A copy function such as mirroringmay be used for the data copy.

Then, the management terminal 500 judges whether or not the copy iscomplete (step 4012). When judged that the copy is complete, a programstored in the host computer 300A is operated to set an access path fromthe host computer 300A to the newly added disk device group 200 (step4013). To be specific, path management software or the like stored inthe host computer 300A is used to switch a path from the host computer300A.

After the first and second processings both end, the frozenconfiguration information is released (step 4007). This allows theprocessing by the storage controller blade 110 of the new blade storingunit 101B.

The above-mentioned processing makes it possible to change theconfiguration of the storage controller 100.

It should be noted that based on the configuration information stored inthe step 4002, all the storage controller blades 110 stored in the oldblade storing unit 101A and the new blade storing unit 101B may beinitialized so that one storage controller 100 is set to include thestorage controller blades 110 of the old and new storage controllerblades. This allows, for example, the new blade storing unit 101B andthe old blade storing unit 101A to be set as one storage controller 100while being located physically apart from each other.

In the third embodiment, the configuration information is directlycopied between the storage controller blades 110. This can eliminate theneed for the storage area for the configuration information on thelogical volume described above in the first embodiment and thenon-volatile storage device unit 600 described above in the secondembodiment.

As described above, according to the third embodiment of this invention,it is possible to change (enhance) the configuration of the storagecontroller blades 110 during the operation of the storage controller100. At the same time, the configuration of the disk device group 200can be changed (enhanced). In particular, the storage system can bechanged into a redundant structure with ease.

The method of changing the configuration of the storage controller 100has been described above according to the first to third embodiments.The feature of this invention resides in that the storage controllerblade 110 of the old blade storing unit 101A can be relocated to the newblade storing unit 101B without any changes in the storage controllerblade 110 itself, which allows the use thereof.

Fourth Embodiment

Next, description will be made of a fourth embodiment of this invention.

Shown in the fourth embodiment is how pieces of information aredistributed in the memories provided to the respective storagecontroller blades 110 and the switch connection blades in the storagesystem of the first through third embodiments described above.

FIG. 14 is a block diagram showing a configuration of the storagecontroller 100 according to the fourth embodiment, and shows how todistribute pieces of information to be redundantly stored within thestorage controller 100.

The storage controller 100 according to the fourth embodiment has afull-mesh configuration composed of eight storage controller blades 110Athrough 110H. In other words, the eight storage controller blades 110are each directly connected to all the other storage controller blades110.

The information to be redundantly stored within the storage controllerincludes the storage controller configuration information, controlinformation, and data input/output control information (for example,directory management information on cached data). Hereinafter, theinformation is called “management information”.

In the fourth embodiment, the management information is redundantlystored in at least two storage controller blades within the storagecontroller 100. To be specific, a plurality of a redundant-storagegroups 1111 through 1113 are set, and the management information isredundantly stored in each redundant-storage group.

In the redundant-storage group 1111 shown in the example of FIG. 14, amanagement information piece A is stored in each of the memory units 150provided to the storage controller blades 110A and 110B. Also, in theredundant-storage group 1112, a management information piece B is storedin each of the memory units 150 provided to the storage controllerblades 110C and 110D. Further, in the redundant-storage group 1113, amanagement information piece C is stored in each of the memory units 150provided to the storage controller blades 110E through 110H.

The management information pieces are thus stored redundantly, therebyenhancing the availability of the storage system.

It should be noted that every storage controller blade belongs to oneredundant-storage group in the example of FIG. 14, but the storagecontroller blade may belong to two or more redundant-storage groups.

Here is an example configuration where the same management informationpiece is redundantly stored in all the storage controller blades. Inthis configuration, even when a failure occurs in all the storagecontroller blades but one, the management information on the entiresystem can be maintained, which maximizes its availability. However, thelarge capacity needs to be ensured in the memory unit for storingredundant information.

FIG. 15 is a block diagram showing a configuration of the storagecontroller 100 according to a modified example of the fourth embodiment,and shows how to distribute pieces of information to be redundantlystored within the storage controller 100.

In the example of FIG. 14, the storage controller blades form afull-mesh configuration, but the storage controller 100 shown in FIG. 15includes the storage controller blades 110A through 110D and switchconnection blades with a memory unit 182A to 182D.

In the large-scale system configuration using a switch connection bladewith a memory unit, the memory mounted to the switch connection blade isused for the redundant-storage group.

In other words, the management information piece is redundantly storedin the memories provided to the respective storage controller blades andthe switch connection blades. To be specific, a plurality ofredundant-storage groups 1211 and 1212 are set, and the managementinformation is stored in each redundant-storage group.

In the redundant-storage group 1211 shown in the modified example ofFIG. 15, the management information piece A is stored in each of thememory units 150 provided to the storage controller blades 110A and 110Band the memory units provided to the switch connection blades 182A and182B. Also, in the redundant-storage group 1212, the managementinformation piece B is stored in each of the memory units 150 providedto the storage controller blades 110C and 110D and the memory unitsprovided to the switch connection blades 182C and 182D.

It should be noted that every pair of the storage controller blade andthe switch connection blade belong to one redundant-storage group in themodified example of FIG. 15, but the storage controller blade may belongto two or more redundant-storage groups. Alternatively, the storagecontroller blade and the switch connection blade do not necessarily forma pair.

For example, when the management information is redundantly stored onlyin the switch connection blades, the capacity can be reduced in thememory unit 150 of the storage controller blade.

It should be noted that each distribution method for the managementinformation has characteristics, and any distribution is effective forimproving the availability of the system.

As in the example shown in FIG. 14 or the modified example shown in FIG.15 as described above, in the storage controller 100, it is possible toenhance the availability of the storage controller 100 by dividingredundant information into several groups and redundantly storing theinformation in the memory units 150 of the storage controller blades andthe memory units of the switch connection blades.

Next, description will be made of processing performed when a failureoccurs in the storage controller 100 that redundantly stores themanagement information as described above. To be specific, descriptionwill be made of a method of controlling the configuration of theredundant-storage groups when a failure occurs in the storage controllerblade 110 and in the case where the storage controller blade 110 isreplaced.

FIG. 16 is a flowchart of processing of handling a failure occurring inthe storage controller 100.

The processing is executed when a failure occurs in the storagecontroller blade 110A or the like provided to the storage controller100.

The processing is executed mainly by the processor unit 140 of anotherstorage controller blade that belongs to the same redundant-storagegroup and is not experiencing the failure. Alternatively, the processingmay be executed by the processor unit 140 of one storage controllerblade as the entire storage controller 100.

First, when it is detected that a failure has occurred in any one of thestorage controller blades, the redundant-storage group to which thestorage controller blade belongs is identified. When the storagecontroller blade experiencing the failure belongs to a plurality ofredundant-storage groups, all the redundant-storage groups to which thestorage controller blade belongs are identified (step 5001).

Then, the identified redundant-storage group is registered into aprocessing list (step 5002). The processing list is stored in the memoryunit 150 of the storage controller blade including the processor unit140 that is executing the processing. With reference to the processinglist, the following processing is executed.

Then, the processing list is referenced, and it is judged whether or notthere is any unprocessed redundant-storage group (5003).

When it is judged that there is an unprocessed redundant-storage groupleft, the procedure advances to a step 5004. When it is judged thatthere is no unprocessed redundant-storage group left, the procedureadvances to a step 5008.

In the step 5004, it is judged whether or not the selectedredundant-storage group is still redundant. In other words, it is judgedwhether or not the same management information piece is stored in allthe storage controller blades 110 belonging to the redundant-storagegroup but the one that is experiencing a failure.

When it is judged that the selected redundant-storage group is no moreredundant, the redundancy of the management information previouslystored redundantly has been lost due to a failure. In this case, theavailability of the storage system degrades. Therefore, another storagecontroller blade needs to be used to immediately ensure the redundancy,so the procedure advances to a step 5005. On the other hand, when it isjudged that the selected redundant-storage group is still redundant, itis unnecessary to immediately ensure the redundancy, so the procedureadvances to a step 5007.

In the step 5005, one or more storage controller blades are selectedfrom the storage controller blades that are not experiencing a failure.

Then, the selected storage controller blade is added as a temporarymember of the redundant-storage group. After that, the managementinformation stored in the redundant-storage group is copied to thememory unit 150 of the storage controller blade added as the temporarymember (step 5006).

Then, the selected storage controller blade 110 is registered into alist of blades to be replaced. Also, a flag indicating “processed” isset for the redundant-storage group in the processing list (step 5007).After that, the procedure returns to the step 5003, and when it isjudged that there is an unprocessed redundant-storage group left, theprocessing of the steps 5004 through 5007 is repeated.

In the step 5008, it is judged whether or not the storage controllerblade in which a failure occurred has already been replaced. When it isjudged that the storage controller blade 110 in which a failure occurredhas already been replaced, the procedure advances to a step 5009.

In the step 5009, when it is judged that there is a storage controllerblade added as a temporary member of the redundant-storage group, themanagement information stored therein is copied to the memory unit 150of the storage controller blade 110 that has replaced the old one. Onthe other hand, when it is judged that there is no storage controllerblade added as a temporary member of the redundant-storage group, inother words, when there is a redundancy left, the management informationis copied from any one of the storage controller blades belonging to theredundant-storage group.

Then, as necessary, the storage controller blade added as a temporarymember of the redundant-storage group is removed from theredundant-storage group (step 5010).

It should be noted that when a plurality of storage controller bladesare replaced, the switch connection blade of the steps 5009 and 5010 isrepeated by a necessary number of times.

Then, the processing upon the occurrence of a failure comes to an end.

It should be noted that the flowchart of FIG. 16 describes the case ofthe storage controller blade, but the same processing upon theoccurrence of a failure can be performed on the storage controller bladewith a memory unit.

As described above, according to the fourth embodiment of thisinvention, the management information is redundantly stored in aplurality of storage controller blades and switch connection blades.Further, the management information is stored in each redundant-storagegroup. With such an arrangement, the availability of the storagecontroller 100 enhances.

Fifth Embodiment

Next, description will be made of a fifth embodiment of this invention.

Shown in the fifth embodiment is how a plurality of switch connectionblades 182 are configured in the storage systems of the first throughfourth embodiments described above.

In the first through fourth embodiments described above, the storagecontroller blades 110 form a full-mesh configuration in a small-scalesystem. On the other hand, a large-scale system is formed by use of theswitch connection blade 182.

In this embodiment, description will be made of an example change in theconnection configuration of the switch connection blade 182 in the caseof a larger-scale system.

FIG. 17 is a block diagram showing the configuration of the storagecontroller 100 configured into a small scale.

The storage system shown in FIG. 17 includes four storage controllerblades 110 and two switch connection blades 182.

The storage controller blades 110 are substantially the same as thosedescribed above in FIG. 2. The memory unit 150 of the storage controllerblade 110 does not necessarily need to be used as a cache or a sharedmemory storing management information, but the memory unit 150 of theswitch connection blade 182 with a memory unit may be used as a sharedmemory.

It should be noted that the storage controller blades 110 are connectedto the switch connection blades 182 via the mutual network system 180.

Herein, consideration is given to the case where the configuration ofthe storage controller 100 shown in FIG. 17 is scaled up into a largescale.

FIG. 18 is a block diagram showing the configuration of the storagecontroller 100 configured into a large scale. The storage controllershown in FIG. 18 is added with more storage controller blades 110 inaddition to the configuration shown in FIG. 17. The storage controllerblades 110 are connected to one another by the switch connection blades182A. In addition, the switch connection blades 182A are connected toone another by other switch connection blades 182B.

The connection is made between the switch connection blades 182A and182B in multiple stages. In other words, one stage of mutual connectionby use of the switch connection blades 182 is used in a small-scalesystem, and in a large-scale system, a change is made into multiplestages of mutual connection by use of the switch connection blades 182Aand 182B.

As described above, according to the fifth embodiment, even when morestorage controller blades 110 having the same configuration areconnected for implementing the large-scale system configuration, thenumber of paths connecting the blades can be reduced. Therefore, itbecomes easier to switch from a small-scale system configuration into alarge-scale system configuration, so the initial cost can be suppressedto a lower level.

It should be noted that also in this embodiment, the methods of thefirst through third embodiments can be used for the procedure ofchanging a configuration.

While the present invention has been described in detail and pictoriallyin the accompanying drawings, the present invention is not limited tosuch detail but covers various obvious modifications and equivalentarrangements, which fall within the purview of the appended claims.

1. A storage controller for controlling data access made from a hostcomputer to a disk device, comprising: a plurality of storagecontrolling units which control data access to at least one of aplurality of disk devices; a non-volatile storage unit which isaccessible by each of the storage controlling units; and a mutualnetwork system that connects the storage controlling units to oneanother, wherein each of the storage controlling unit comprises: aprocessor unit that controls a configuration of the storage controllingunit and data access to at least one of the disk devices, interfaceunits that are connected to the host computer and the disk devices, amemory unit that stores a data cache and configuration information ofthe storage controlling unit, and a mutual connection unit that connectsthe interface units, the processor unit, and the memory unit to oneanother, wherein the processor unit recognizes a form of connection ofthe storage controlling unit to another storage controlling unit overthe mutual network system.
 2. The storage controller according to claim1, wherein the storage controlling units are connected to each other bycables through a back plane.
 3. The storage controller according toclaim 1, wherein the storage controlling units are connected to eachother through a switch connection unit.
 4. The storage controlleraccording to claim 3, wherein the switch connection unit comprises: aswitch that controls send/receive of data and configuration informationamong the storage controlling units; and a shared memory that storesinformation shared among the storage controlling units.
 5. The storagecontroller according to claim 3, wherein the processor unit judgeswhether the other storage controlling unit or the switch connection unitis connected as a correspondent device to the storage controlling unit,and stores information representing the correspondent device in adiscovery information table.
 6. The storage controller according toclaim 5, wherein the discovery information table includes deviceinformation representing a type of the correspondent device, slotinformation representing a location of a slot of the mutual networksystem which connects the correspondent device, the correspondent portinformation that representing a port of the correspondent device,function information representing a function of the correspondentdevice, memory information representing a capacity of the memory unitprovided to the correspondent device, port information representing aport of the storage controlling unit which connects the correspondentdevice.
 7. The storage controller according to claim 1, wherein, in acase where a configuration of the storage controller is changed byreplacing a first storage controlling unit to a second storagecontrolling unit, the first storage controlling unit storesconfiguration information on the storage controller that has notchanged, and the second storage controlling unit reads the storedconfiguration information and applies the read configuration informationon the second storage controlling unit.